import axios from "axios";
import { Message } from "element-ui";
import store from "@/store";
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 5000, // request timeout
});

// 请求拦截器
service.interceptors.request.use(
  (config) => {
    // 在这个位置需要统一的去注入token
    const token = store.state.user.token;
    if (token) {
      // 如果token存在 注入token
      config.headers["Authorization"] = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  //判断当前接口是否成功
  (res) => {
    const { data, message, success } = res.data;
    if (success) {
      // 成功 把后端接口return
      return data;
    } else {
      // 失败 模仿原来的错误操作 把错误提示语传入
      // 错误弹框
      Message.warning(message);
      return Promise.reject(message);
    }
  },
  (error) => {
    return Promise.reject(error);
  }
);

export default service;
